#ifndef __USER_HT16C22_H__
#define __USER_HT16C22_H__

#include "user_io_i2c.h"

typedef struct 
{
    uint8_t num6_low    : 3 ;
    uint8_t counts_3    : 1 ;
    uint8_t num6_high   : 4 ;
    uint8_t num7_low    : 3 ;
    uint8_t counts_4    : 1 ;
    uint8_t num7_high   : 4 ;
    uint8_t num8_low    : 3 ;
    uint8_t O2_Density  : 1 ;
    uint8_t num8_high   : 4 ;
    uint8_t num9_low    : 3 ;
    uint8_t anion       : 1 ;
    uint8_t num9_high   : 4 ;
    uint8_t Point       : 1 ;
    uint8_t num10       : 7 ;
    uint8_t Percent     : 1 ;
    uint8_t hours_6     : 1 ;
    uint8_t hours_5     : 1 ;
    uint8_t hours_4     : 1 ;
    uint8_t hours_3     : 1 ;
    uint8_t num5        : 7 ;
    uint8_t minutes_2   : 1 ;
    uint8_t num4        : 7 ;
    uint8_t minutes_1   : 1 ;
    uint8_t num3        : 7 ;
    uint8_t colon       : 1 ;
    uint8_t timeset_1   : 1 ;
    uint8_t timeset_2   : 1 ;
    uint8_t counts_1    : 1 ;
    uint8_t counts_2    : 1 ;
    uint8_t num2        : 7 ;
    uint8_t hours_2     : 1 ;
    uint8_t num1        : 7 ;
    uint8_t hours_1     : 1 ;
}Display_Show_Bit;//显示数据各个位对应的物理含义

typedef struct 
{
    uint8_t Set_Time     ;
    uint8_t Flow_Data    ;
}Display_Show_Data;//存储部分数据，用于恢复数据显示

typedef struct
{
    uint8_t           Data_Head_Addr;         //地址
	uint8_t           Data_Len;               //长度
    Display_Show_Data Display_Data;           //显示数据
    Display_Show_Bit  Display_Show;           //发送数据
	PERIPHERAL        peripheral  ;           //ͨ通信设备
} Display_INFO;

typedef enum
{
    ON = 1,
    OFF = 0
} Light_State;

typedef enum
{
    Set_Time = 0,
} Data_tpye;

void User_Ht16c22_Init(Display_INFO* info);
void User_Ht16c22_Mode_Set(Display_INFO* info,uint8_t Mode);
void User_Display_Clear(Display_INFO* info);
void User_Display_SetData(Display_INFO* info,Data_tpye type,uint16_t val);
void User_Display_Updata(Display_INFO* info);
#endif
